"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/11/5 14:02
@Description : 
装饰器  类  方法  类方法  静态方法
   闭包特殊形式
"""
import time


# 自定义一个装饰器  参数类型  函数
def study_pro(fn):
    def inner():
        print('---------上课时间到了-------------')
        fn()
        print('---------下课时间到了-------------')
    return inner


@study_pro  # study = inner()
def study():
    print('--------正在上课-------')
    time.sleep(5)


# 需要增强函数的业务功能   不修改源代码 定义新函数  将原有函数作为参数出入新函数
def new_study(fn):
    print('---------上课时间到了-------------')
    # 调用基础函数
    fn()
    print('---------下课时间到了-------------')


# 调用函数  装饰器修饰  1.基础函数会被作为参数传入装饰器函数  2. 创建一个和基础函数同名函数将装饰器内部返回的函数赋值给变量
study()
# 该变了函数的使用方式
# new_study(study)
